Computer networks such as the Internet allow computer systems to exchange content (e.g., data) in a variety of ways. One technique for accessing content over a computer network such as the Internet operates by using a suite of protocols collectively referred to as the World Wide Web. In a typical operation of the world wide web, a user at a client computer system operates a client software application such as a web browser to access content served by a web server computer system over the computer network. The content may be any type of data or information such as documents, web pages, files, database information, streams of audio and/or video data or the like that the web server transmits over the data communications network to the web browser operating in the client computer system. Similar data communications mechanisms and techniques allow client computer systems such as web site kiosks to periodically retrieve content such as advertising audio or video data from one or more content server computer systems in order to present the information to individuals such as corporate customers who interact with the kiosks.
Client computer systems that require the ability to access content using the aforementioned techniques may be connected to a computer network such as the Internet at diverse geographic locations. In such situations, a producer, provider or other originator of the content may utilize a group of technologies collectively called a content distribution network to disseminate or distribute the content to many content server computer systems called content engines located within the different geographic regions of the computer network (e.g., located in various local area network installations) for future access by client computer systems that request this content from the content engines. Generally then, a content distribution network or CDN is a collection of computer systems (e.g., content engines and content routers) that interoperate with each other to efficiently provide portions of content to requesting client computer systems. The various portions of content distributed within a content distribution network may be related in some manner, such as being provided from a single content provider or may be related by the type of content. A content distribution network typically includes a content router (e.g., operating as a load balancer) and one or more content engines that operate as servers (e.g., web servers) to serve content requested by content requests sent from client computer systems to the content router. The content router receives client requests for content and using various content routing techniques decides which content engine is to service those client requests. The content router then redirects the client requests to the appropriate content engine. This redirection may be based on numerous factors such as the geographic proximity of the requesting client to an available content engine containing the requested content, or on the specific content requested, or on load balancing considerations between multiple available content engines. A content engine that receives a redirected request from client computer system typically operates to serve the requested content back to those clients, though the content engine may perform further redirection techniques as well in some instances.
As an example of the operation of a content distribution network, a user controlling a web browser operating on a client computer system may select a Uniform Resource Locator (URL) that references a specific portion of content served by the content distribution network. A domain name specified within the URL might generally reference the content distribution network itself, such as www.CDN.com and protocols such as the Domain Naming System (DNS) can initially direct that client content request to a content router associated with that content distribution network. Through various redirection techniques (e.g., Domain Naming System redirection and/or Hypertext Transport Protocol redirection), the content router that receives the client request for content can redirect this client request to an address of a specific content engine within (i.e., associated with) the content distribution network based on the aforementioned routing criteria (e.g., the geographic location of the client requesting the content, load balancing considerations made between the various content engines, and so forth). A content engine that receives the redirected content request can then process this request to serve the requested content to the client computer system.
As explained above, a conventional content delivery network accelerates access to content on behalf of client computer systems that request the content by distributing the content for receipt and local storage at content engines distributed throughout a computer network such as the Internet. Rather than all client computer systems requesting the same content from a single content provider computer system (e.g., sometimes referred to as an origin server), individual client computer systems are able to obtain the requested content from a content engine computer system (i.e., a server) that is “close” to the client and that locally stores the required content. This improves a client's performance with respect to access to the content for a number of reasons. The client computer system may be much closer in network terms (e.g., number of network hops) to the content engine computer system as compared to the content provider computer system. In addition, the data communications link from the client computer system to the content engine may be a high-speed connection while one or more data communications links (e.g., a satellite link) along the network path from the client computer system to the content provider computer system may be a relatively slow data communications links. As a result, the client computer system can access the content faster (i.e., can get better response) from the more local content engine computer system than from the more distant or remote content provider computer system. In addition, by having many content engine computer systems distributed throughout a computer network, the load, demand and bandwidth requirements of each content engine computer system and can be less since each content engine only needs to serve content to certain client computer systems.
Various conventional techniques and mechanisms also exist for distributing the content from the content provider computer system to the selection of content engines distributed through a computer network such as the Internet in order to accelerate access to the content by client computer systems. Such techniques essentially pre-position the content within each of the content engine computer systems for subsequent servicing of client requests for the content. As an example, each content engine can periodically contact a master content provider computer system to determine if additional content is available for storage within the content engine. If the content engine determines that the master content provider computer system contains content that the content engine may require later to serve to client computer systems, that content engine can obtain a copy of this content to maintain within local storage in order to service subsequently received client requests for this content. The conventional content engine may use a standard data access protocol such as the File Transfer Protocol (FTP) in order to access or download the content from the content provider computer system.
Pre-positioning content within content engines is especially important when the content is very large or in situations where there is a low speed connection between the content provider computer system and the content engine that will cache or otherwise store the content for access by requesting client computer systems.